#pragma once

class CPdbModuleDetails : public IPdbModuleDetails
{
public:
	CPdbModuleDetails(CPdbModule*);
	virtual ~CPdbModuleDetails();

	//	Set Properties
	void SetCompilerName(wstring s);;
	void SetGetBackEndBuildNumber(wstring s);
	void SetManagedCode(bool b);

	//	Get Properties.
	std::wstring GetName() const;
	const std::wstring& GetCompilerName() const;
	PdbLanguage GetLanguage() const;
	PdbTargetCPU GetTargetCPU() const;
	bool IsManagedCode() const;
	const std::wstring& GetBackEndBuildNumber() const;

private:
	PdbTargetCPU MapMachineTypeToTargetCPU(DWORD dwType) const;
	
	wstring m_sCompilerName;
	wstring m_sBackEndBuildNumber;
	bool m_bManagedCode;
	PdbLanguage m_PdbLanguage;
	PdbTargetCPU m_PdbTargetCPU; 

	CPdbModule* m_pPdbSymbolParent;
};